由於在原本的範例中,時跟分之間沒有冒號,看得我很不習慣,
所以想把冒號加在中間,所以改成這樣:
    function onUpdate(dc as Dc) as Void {
        dc.setColor(Graphics.COLOR_BLACK,Graphics.COLOR_BLACK);
        dc.clear();
        // Get and show the current time
        var clockTime = System.getClockTime();
        dc.setColor(Graphics.COLOR_WHITE,Graphics.COLOR_BLACK);
        dc.drawText(dc.getWidth()/2, 30, myfonts, 
        Lang.format("$1$:$2$",[clockTime.hour.format("%02d"),clockTime.min.format("%02d")]), 
        Graphics.TEXT_JUSTIFY_CENTER);
    }
結果竟然會擋到字...

查了一陣子,暫時還沒看到有什麼能用程式碼解決的方案,
所以先用最根本的方式解決了
在BitmapFont調整字體的大小,
然後再重新匯出.fnt然後覆蓋到專案裡面,
完成
再加個秒數好了,
由於自訂的字型沒辦法調整大小,所以我就先用預設的小字來顯示秒數
其實也可以再匯出字更小的字型檔來使用,
不過我覺得所有數字都用同一種字體可能不好太看,所以就先作罷
dc.drawText(dc.getWidth()/2, dc.getHeight()/5*3, Graphics.FONT_SMALL, Lang.format("=$1$=",[clockTime.sec]), Graphics.TEXT_JUSTIFY_CENTER);
$1$是Lang.format(String, Array)的用法,就像java的String.fomat()一樣,
可參閱api文件
https://developer.garmin.com/connect-iq/api-docs/Toybox/Lang.html#format-instance_function
有了秒數,也顯示一下日期好了,
        var currentDate = Gregorian.info(Time.now(), Time.FORMAT_SHORT);
        var dateString = Lang.format("$1$/$2$/$3$", [
        currentDate.year,
        currentDate.month.format("%02d"),
        currentDate.day.format("%02d")
        ]);
        dc.setColor(Graphics.COLOR_WHITE, Graphics.COLOR_BLACK);
        dc.drawText(dc.getWidth() / 2, dc.getHeight()/5*4, Graphics.FONT_SMALL, dateString, Graphics.TEXT_JUSTIFY_CENTER);
上面記得要先import Toybox.Time,否則無法使用Gregorian.info(Time.now(), Time.FORMAT_SHORT);
import Toybox.Time;

我對美術一直不太在行
雖然不太好看,但就先這樣吧,明天再看看還能加點什麼